home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1FQUC5A (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  3.8 KB  |  92 lines

  1. package com.sun.java.swing.plaf.basic;
  2.  
  3. import com.sun.java.swing.AbstractButton;
  4. import com.sun.java.swing.JComponent;
  5. import com.sun.java.swing.JMenu;
  6. import com.sun.java.swing.JMenuBar;
  7. import com.sun.java.swing.LookAndFeel;
  8. import com.sun.java.swing.event.ChangeListener;
  9. import com.sun.java.swing.plaf.ComponentUI;
  10. import com.sun.java.swing.plaf.MenuBarUI;
  11. import java.awt.Dimension;
  12. import java.awt.event.MouseMotionListener;
  13. import java.io.Serializable;
  14.  
  15. public class BasicMenuBarUI extends MenuBarUI implements Serializable {
  16.    protected JMenuBar menuBar;
  17.    protected MouseListener mouseListener;
  18.    protected MouseMotionListener dragListener;
  19.    protected ChangeListener menuChangeListener;
  20.  
  21.    protected void addListeners() {
  22.       for(int i = 0; i < this.menuBar.getMenuCount(); ++i) {
  23.          this.registerMenu(this.menuBar.getMenu(i));
  24.       }
  25.  
  26.    }
  27.  
  28.    protected ChangeListener createChangeListener() {
  29.       return new 1(this);
  30.    }
  31.  
  32.    protected MouseListener createMouseListener() {
  33.       return new MouseListener(this.menuBar);
  34.    }
  35.  
  36.    protected MouseMotionListener createMouseMotionListener() {
  37.       return new BasicMenuMouseMotionListener();
  38.    }
  39.  
  40.    public static ComponentUI createUI(JComponent x) {
  41.       return new BasicMenuBarUI();
  42.    }
  43.  
  44.    public Dimension getMaximumSize(JComponent c) {
  45.       return null;
  46.    }
  47.  
  48.    public Dimension getMinimumSize(JComponent c) {
  49.       return null;
  50.    }
  51.  
  52.    public Dimension getPreferredSize(JComponent c) {
  53.       return null;
  54.    }
  55.  
  56.    protected void initListeners() {
  57.       this.mouseListener = this.createMouseListener();
  58.       this.dragListener = this.createMouseMotionListener();
  59.       this.menuChangeListener = this.createChangeListener();
  60.    }
  61.  
  62.    public void installUI(JComponent c) {
  63.       this.menuBar = (JMenuBar)c;
  64.       this.initListeners();
  65.       this.addListeners();
  66.       c.setOpaque(true);
  67.       LookAndFeel.installBorder(c, "MenuBar.border");
  68.       LookAndFeel.installColorsAndFont(c, "MenuBar.background", "MenuBar.foreground", "MenuBar.font");
  69.    }
  70.  
  71.    public void registerMenu(JMenu menu) {
  72.       ((AbstractButton)menu).getModel().addChangeListener(this.menuChangeListener);
  73.    }
  74.  
  75.    protected void removeListeners() {
  76.       for(int i = 0; i < this.menuBar.getMenuCount(); ++i) {
  77.          this.unregisterMenu(this.menuBar.getMenu(i));
  78.       }
  79.  
  80.    }
  81.  
  82.    public void uninstallUI(JComponent c) {
  83.       this.removeListeners();
  84.       c.resetKeyboardActions();
  85.       LookAndFeel.uninstallBorder(c);
  86.    }
  87.  
  88.    public void unregisterMenu(JMenu menu) {
  89.       ((AbstractButton)menu).getModel().removeChangeListener(this.menuChangeListener);
  90.    }
  91. }
  92.